#ifndef _DRAW_H_
#define _DRAW_H_

#define MAX_INFO_LINES 12

typedef enum COLOR {WHITE=2, YELLOW, CYAN, MAGENTA, RED, GREEN, BLUE} COLOR;
typedef enum DIRECTION {S, N, W, E} DIRECTION;
typedef enum ORIENTATION {VER, HOR} ORIENTATION;

typedef struct drawerCDT* drawerADT; 

drawerADT newDrawer(int blockSizeX, int blockSizeY, int numBlocksX, int numBlocksY);
void addCar(drawerADT drawer,DIRECTION direction, COLOR color, int posX, int posY);
void setSemaphore(drawerADT drawer,ORIENTATION orientation, COLOR color, int posX, int posY);

/*Removes a car or a semaphore from the city drawing*/
int removeObject(drawerADT drawer,int posX, int posY);

void printInfo(drawerADT drawer, int line, char* info);
void eraseInfoLine(drawerADT drawer, int line);

void draw(drawerADT drawer);
void drawInfo(drawerADT drawer);


void freeDrawer(drawerADT drawer);

#endif
